package bean;

import java.util.List;

import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import javax.faces.model.DataModel;
import javax.faces.model.ListDataModel;

import br.com.kapa.dao.DaoUnidadeBeanRemote;
import br.com.kapa.model.Unidade;
import fachada.Fachada;

@ManagedBean
@SessionScoped
public class UnidadeBean {

	private Unidade unidade;
	private DataModel<Unidade> unidades;
	private DaoUnidadeBeanRemote dao;
	private Fachada fachada = Fachada.getInstance();

	public UnidadeBean() {
		dao = (DaoUnidadeBeanRemote) fachada.getDaoUnidade();
	}

	public Unidade getUnidade() {
		return unidade;
	}

	public void setUnidade(Unidade u) {
		unidade = u;
	}

	public DataModel<Unidade> getUnidades() {
		List<Unidade> lista = dao.findAll();
		unidades = new ListDataModel<Unidade>(lista);
		return unidades;
	}

	public void salvar() {
		FacesContext fc = FacesContext.getCurrentInstance();
		dao.persist(unidade);
		fc.addMessage(null, new FacesMessage("Cadastro efetuado com sucesso",
				unidade.getNome()));
		
		fachada.sendMessageToLog("Salvando unidade", unidade.getNome()); 
		
	}

	public void load(ActionEvent e) {
		unidade = (Unidade) (unidades.getRowData());
	}

	public void create(ActionEvent e) {
		unidade = new Unidade();
	}

	public void update(ActionEvent e) {
		FacesContext fc = FacesContext.getCurrentInstance();
		dao.merge(unidade);
		fc.addMessage(null, new FacesMessage("Cadastro alterado com sucesso",
				unidade.getNome()));
		
		fachada.sendMessageToLog("Alterando unidade", unidade.getNome()); 
	}


}
